package com.supercube.sport.yoga.service;

import com.supercube.sport.yoga.bo.BatchSigned;
import com.supercube.sport.yoga.bo.ClassSingedBo;
import com.supercube.sport.yoga.bo.MemberSignedBo;
import com.supercube.sport.yoga.domain.BookingCourseDTO;
import com.supercube.sport.yoga.vo.*;

import java.util.List;
import java.util.Map;

public interface BookingCourseService {

    int save(BookingCourseDTO dto);

    int update(BookingCourseDTO dto);

    BookingCourseVO queryBookingCourseById(String id);

    /**
     * 私教预约时，保存预约信息
     * @param dto
     * @return
     */
    int savePrivateBookingCourse(BookingCourseDTO dto);

    /**
     * 根据classId查询会员预约详情
     * @param classId
     * @return
     */
    List<MemberBookingCourseInfoVO> queryMemberBookingCourseInfoByClassId(String classId);

    List<SignedRecordVo> getSignedRecord(SignedRecordVo vo);

    List<Map<String,String>> queryVenue(String memberId);

    List<MemberCardBindVo> getMemberCardAppointment(Map<String,String> map);
    List<MemberCardBindVo> getMemberCard(Map<String,String> map);
    List<ClassInfoVo> getClassInfo(ClassSingedBo bo);
    List<CourseBasicInfoVO> getCourseBaseInfo(Map<String,String> map);

    void saveMemberSigned(MemberSignedBo bo);

    void batchSaveMemberSigned(List<BatchSigned> list);

    List<BookingCourseVO> queryBookingCourseBySiteId(String siteId, String classId);

    int countBookingCourseInfoByClassId(String classId);
}
